package main

import (
	"github.com/golang-jwt/jwt"
	"strings"
)

// 利用slice，计算每一个小写后，数组转 字符串。
func toLowerCase(s string) string {
	cArr := make([]byte, len(s))
	for i, c := range s {
		if !is(byte(c)) {
			c += 32
		}
		cArr[i] = byte(c)
	}
	return string(cArr)
}

// 判断当前字符，是否是小写字母
func is(c byte) bool {
	if c >= 'A' && c <= 'Z' {
		return false
	}
	return true
}


// 调用API
func toLowerCase(s string) string {
	return strings.ToLower(s)
}


// 官方实现： 利用位运算
// ASCII码大小写字母编码没有挨着排在一起的原因了，设计者🐂, 方便位运算转换
func toLowerCase(s string) string {
	lower := &strings.Builder{}
	lower.Grow(len(s))
	for _, ch := range s {
		if 65 <= ch && ch <= 90 {
			ch |= 32
		}
		lower.WriteRune(ch)
	}
	return lower.String()
}


